Le partage de fichiers dans le monde Linux se réfère à la capacité de partager des fichiers et des répertoires entre plusieurs systèmes Linux ou entre Linux et d'autres systèmes d'exploitation. Il permet aux utilisateurs d'accéder et de collaborer sur des fichiers à travers un réseau, ce qui facilite le partage des données et des ressources. Voici quelques aspects clés du partage de fichiers dans le monde Linux:
•Network File Systems (NFS): NFS est un protocole de système de fichiers largement utilisé dans Linux. Il permet à un système d'exporter ou de partager des répertoires sur un réseau, les rendant accessibles à d'autres systèmes comme s'ils étaient locaux. NFS utilise le modèle client-serveur, où un serveur NFS exporte des répertoires et des clients les montent pour accéder aux fichiers partagés.
•Samba (SMB/CIFS): Samba est une suite logicielle open-source qui implémente le protocole SMB/CIFS, qui est utilisé pour le partage de fichiers et d'imprimantes entre les systèmes Linux et Windows. Samba permet aux systèmes Linux d'agir en tant que serveurs SMB/CIFS, permettant aux clients de Windows d'accéder aux répertoires et aux imprimantes partagés.
•File Transfer Protocols: Divers protocoles de transfert de fichiers sont utilisés pour partager des fichiers dans le monde Linux. Certains protocoles communs incluent FTP (File Transfer Protocol), FTPS (FTP sur SSL/TLS), SFTP (SSH File Transfer Protocol), et SCP (Secure Copy). Ces protocoles permettent des transferts de fichiers sécurisés et efficaces entre les systèmes.
•Web-based Sharing: Linux fournit des options pour le partage de fichiers basé sur le Web en utilisant des technologies comme WebDAV (Web Distributed Authoring and Versioning). WebDAV étend le protocole HTTP, permettant aux utilisateurs d'accéder à distance, de gérer et de collaborer sur des fichiers hébergés sur des serveurs Web.
•Peer-to-Peer (P2P) Sharing: Le partage de fichiers P2P implique le partage direct de fichiers entre des systèmes individuels sans avoir besoin d'un serveur central. Les systèmes Linux peuvent utiliser diverses applications de partage de fichiers P2P, comme les clients BitTorrent, pour partager des fichiers directement avec d'autres pairs.
•Access Control and Security: Le partage de fichiers dans le monde Linux comprend des fonctionnalités pour le contrôle d'accès et la sécurité. Les autorisations et les paramètres de propriété peuvent être appliqués aux fichiers et répertoires partagés pour réglementer qui peut les lire, les écrire ou les exécuter. De plus, des mécanismes de cryptage et d'authentification peuvent être mis en œuvre pour assurer des transferts sécurisés de fichiers et protéger les données sensibles.
Un serveur NFS (Network File System) est un composant dans un environnement réseau qui fournit des services de partage de fichiers en utilisant le protocole NFS. Il permet aux clients d'accéder et de monter des répertoires distants comme s'ils étaient des annuaires locaux sur leurs propres systèmes. Le serveur NFS héberge les répertoires partagés et les met à la disposition des clients autorisés sur le réseau.
•Sécurité et contrôle d'accès : NFS offre des fonctions de sécurité pour le contrôle d'accès et la protection des données. Système de fichiers distribués: NFS permet la création d'un système de fichiers distribués, permettant de partager des fichiers et des répertoires sur plusieurs systèmes sur un réseau.
•Accès transparent : NFS offre un accès transparent aux fichiers et répertoires partagés. Les clients peuvent monter des actions NFS distantes comme s'ils étaient des répertoires locaux, permettant aux utilisateurs d'interagir avec des fichiers partagés de manière transparente.
•Cross-Platform Compatibilité : NFS est conçu pour fonctionner sur différents systèmes et plateformes d'exploitation.
•Accès efficace aux fichiers réseau : NFS est optimisé pour un accès efficace aux fichiers sur un réseau. Il utilise des mécanismes de cache pour réduire les frais généraux du réseau, minimiser la nécessité de transferts de fichiers répétés et améliorer la performance globale
•Sécurité et contrôle d'accès : NFS offre des fonctions de sécurité pour le contrôle d'accès et la protection des données
•Verrouillage de fichiers : NFS prend en charge les mécanismes de verrouillage de fichiers pour assurer la cohérence des données et prévenir les conflits lorsque plusieurs clients accèdent au même fichier
•Intégration avec l'infrastructure existante : NFS s'intègre sans heurt avec les infrastructures et les services réseau existants. Il peut utiliser des fonctionnalités comme des systèmes d'authentification d'utilisateurs (p. ex. LDAP ou Kerberos) et travailler en conjonction avec d'autres protocoles et services réseau.
•Facilité d'administration : Les serveurs NFS sont relativement faciles à administrer et à configurer. Le fichier de configuration du serveur (/etc/exports) permet aux administrateurs de spécifier les répertoires partagés et les paramètres de contrôle d'accès.
•Compatibilité avec les outils tiers: NFS est compatible avec une large gamme d'outils et d'utilitaires tiers. Des solutions de sauvegarde, des systèmes de surveillance et d'autres outils de gestion de fichiers peuvent être utilisés avec des actions NFS, permettant l'intégration dans les flux de travail et les infrastructures existants.
Assurez-vous que le système est à jour avant de commencer toute installation.
sudo apt update
sudo apt upgrade -y
Exécutez la commande ci-dessous pour installer les paquets nfs-server:
$ sudo apt install nfs-kernel-server rpcbind
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
keyutils libevent-core-2.1-7 libnfsidmap1 nfs-common python3-yaml
Suggested packages:
open-iscsi watchdog
The following NEW packages will be installed:
keyutils libevent-core-2.1-7 libnfsidmap1 nfs-common
nfs-kernel-server python3-yaml rpcbind
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 819 kB of archives.
After this operation, 3,187 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Le répertoire qui sera partagé avec et accessible par les machines clientes sera créé dans cette phase.
sudo mkdir -p /mnt/nfs_share
Nous devons supprimer toutes les contraintes de permission du dossier partagé afin de permettre aux postes de travail clients d'y accéder librement.
sudo chown -R nobody:nogroup /mnt/nfs_share
sudo chmod 777 /mnt/nfs_share
Utilisez votre meilleur éditeur pour modifier le fichier de configuration /etc/exports pour configurer le répertoire partagé pour nfs.
sudo vim /etc/exports
Le répertoire partagé, le réseau client et les permissions client sont tous listés dans ce fichier. Après avoir ouvert le fichier, saisissez les informations suivantes:
/mnt/nfs_share 192.168.200.0/24(rw,sync,no_subtree_check)
les moyens d'accès sont limités aux systèmes du réseau. Pour l'accès de tous les réseaux vous pouvez utiliser *
Vous devez être au courant des options suivantes pour choisir:
•rw – permettant au serveur NFS et au client de lire et d’écrire l’accès
•sync – seulement répondre aux requêtes après que les modifications sont sauvegardées dans un emplacement fiable. Par défaut, ce choix est actif.
•no_subtree_check – disable subtree checking, qui a peu de répercussions de sécurité mais peut parfois augmenter la fiabilité.
Si vous souhaitez accéder à certains serveurs uniques, spécifiez leurs adresses IP séparément dans le fichier /etc/exports :
/mnt/nfs_share client_ip_1(rw,sync,no_subtree_check)
/mnt/nfs_share client_ip_2(rw,sync,no_subtree_check)
Restart et activer nfs-server.
sudo systemctl restart nfs-server
sudo systemctl is-enabled nfs-server
Vérifier l'état du serveur nsf.
$ systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; >
Active: active (exited) since Thu 2023-06-29 22:45:33 EAT; 13s ago
Process: 4270 ExecStartPre=/usr/sbin/exportfs -r (code=exited, sta>
Process: 4272 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/>
Main PID: 4272 (code=exited, status=0/SUCCESS)
CPU: 4ms
Jun 29 22:45:33 debian systemd[1]: Starting nfs-server.service - NFS s>
Jun 29 22:45:33 debian exportfs[4270]: exportfs: /etc/exports [3]: Nei>
Jun 29 22:45:33 debian exportfs[4270]: Assuming default behaviour (
Une fois que les ordinateurs clients ont été autorisés à accéder, exporter le répertoire NFS share et redémarrer le serveur NFS noyau pour les modifications à prendre effet.
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
Installer le pare-feu ufw et limiter l'accès au serveur NFS à des hôtes et réseaux particuliers ne sont que ce que vous ferez à ce stade.
$ sudo apt install ufw
The following additional packages will be installed:
iptables libip6tc2
Suggested packages:
firewalld rsyslog
The following NEW packages will be installed:
iptables libip6tc2 ufw
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 548 kB of archives.
After this operation, 3,411 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Ajouter le service SSH aux règles du pare-feu ufw.
ufw allow ssh
Vous devez autoriser l'accès par le pare-feu pour que le client accède à la part NFS; sinon, le montage du répertoire partagé ne sera pas possible.
sudo ufw allow from 192.168.200.0/24 to any port nfs
sudo ufw enable
Vérifier son statut.
$ ufw status
Status: active
To Action From
-- ------ ----
2049 ALLOW 192.168.200.0/24
En utilisant la commande apt ci-dessous, vous installerez le paquet ‘nfs-common‘ et configurez les clients pour accéder au répertoire partagé et à la partition sur le serveur NFS.
sudo apt update
sudo apt install nfs-common
Nous ferons un répertoire dans lequel nous montons la partition NFS du serveur
sudo mkdir -p /mnt/nfs_clientshare
Montons la partition NFS sur le répertoire nouvellement établi.
sudo mount <nfs-server-ip>:/mnt/nfs_share /mnt/nfs_clientshare
Pour voir si le partage NFS fonctionne sur le client, nous écrivons au répertoire partagé du serveur et voyons si nous pouvons accéder aux mêmes fichiers du client. Créer les fichiers texte suivants sur le serveur NFS :
cd /mnt/nfs_share
touch file1
Vérifiez si les fichiers existent sur le client nfs.
$ ls -l /mnt/nfs_clientshare
total 0
-rw-r--r-- 1 root root 0 Jul 3 16:42 file1
Nous découvrirons comment configurer la configuration /etc/fstab pour monter le répertoire ou la partition NFS sur le démarrage du système. Ouvrir /etc/fstab ajouter les lignes ci-dessous et entrer vos propres adresses IP pour les détails, le répertoire partagé et le répertoire de montage de chemin.
$ sudo vim /etc/fstab
192.168.200.173:/mnt/nfs_share /mnt/nfs_clientshare nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Vérifiez si le /etc/fstab réussit en exécutant les commandes ci-dessous. Assurez-vous que vous n’avez aucune erreur.
sudo umount -R /mnt/nfs_clientshare
Pour monter chaque système de fichiers sur le fichier de configuration ‘/etc/fstab’, exécutez les commandes ci-dessous.
sudo systemctl daemon-reload
sudo mount -a
La commande suivante doit être exécutée pour afficher tous les systèmes de fichiers montés.
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 392M 1.1M 391M 1% /run
/dev/sda1 11G 4.6G 5.6G 46% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda6 20G 31M 19G 1% /home
tmpfs 392M 116K 392M 1% /run/user/1000
192.168.200.173:/mnt/nfs_share 11G 4.6G 5.6G 46% /mnt/nfs_clientshare